#!/bin/bash

set -e

echo ">>> 更新软件源并安装 minicom、expect、udhcpc…"
sudo apt-get update -y
sudo apt-get install -y minicom expect udhcpc

if [ ! -f "./5gecm.exp" ]; then
    echo "Error: 当前目录下未找到 5gecm.exp，请确认文件已存在。" >&2
    exit 1
fi

echo ">>> 调用 Expect 脚本 5gecm.exp，通过 Minicom 向 /dev/ttyUSB2 发送 ECM 拨号指令…"
# 传递给 Expect 脚本的参数可以根据 5gecm.exp 内部实现来调整
sudo expect ./5gecm.exp

echo ">>> ECM 拨号流程（Expect 脚本）已执行完毕。"
sleep 2


echo ">>> 检测 usb1 接口…"
NET_IF="usb1"


echo ">>> 使用 dhclient 为 $NET_IF 申请 IP…"
sudo dhclient -v "$NET_IF"
sudo udhcpc -i "$NET_IF"


echo ">>> 添加默认路由"
sudo ip route add default dev "$NET_IF" || echo "（提示：默认路由可能已存在，可忽略）"
echo ">>> 检测能否ping通 百度 和 服务器"
ping -c 3 -I $NET_IF baidu.com    &>/dev/null && ping -c 3 118.89.105.38 &>/dev/null
if [ $? -eq 0 ]; then
    echo ">>> 5G模块配置完成！"
else
    echo "Error: 无法同时 ping 通 baidu.com 和 118.89.105.38，请检查网络。" >&2
    exit 1
fi

